Automatic control or automation is very important within industrial production, for example in order to eliminate monotonous tasks and lessen hazardous elements in a production line. In general automation also increases the efficiency as well as the quality of a process and is an excellent means to meet today's demands for non-environmental influence and economical production.
Today, most process industries such as food processing, energy or power generating plants, pharmaceutical and chemical industries are indeed more or less automated, that is, have automatic, computerised control, operation and management. The programme code used in these computerized machines and processes are subject to continuous development in order to meet changing demands. Regular updates of system software are therefore necessary for improving existing routines as well as for correcting shortcomings of the routines used.
When such updates are to be made, the version presently being used is overwritten by the new, upgraded version. This can bring about serious problems should the new version not be adequately downloaded, if the new version contains bugs or if it is non-functioning or if it contains unforeseeable incompatibilities with the system, for example leading to instabilities within the system. Should a need to revert to the old version arise, this previous code has to be downloaded again. The production could then possibly halt until the old version is up and running again. Such interruptions in production are very expensive, or could even, depending on the industry in question, be dangerous.
The above-described problems are an issue for example when implementing applications in a controller, such as a process controller or a programmable logic controller (PLC), and upgrading such applications, the controllers being a crucial part of most automation systems. It is difficult to foresee whether a new version of a control application would be functioning in a real environment, and if it is not functioning, it is almost impossible to know which part of the application is not functioning satisfactory.
The results obtained from an automation process are often displayed to a user or operator, and it is important for the user to be able to follow the progress of a process. When changing versions, it is still important to be able to display the results to the user, and a problem caused by the fact that an upgrading of an application results in the previous version of the application being deleted or overwritten is that it takes time to reconfigure different parts of the application. Accordingly, when a previous version of the application is deleted or overwritten, so is for example the graphics related to it. There is thus a period of time between the changes of different versions during which, for example, the graphics shown is not related to the current version, but to the previous version. Depending on the automation system in question such time periods could be only an unwanted disturbance or it could be dangerous and lead to grave consequences. This shortcoming grows worse when there is a need to switch back and forth between different versions, since the problem is repeated for each changeover.